package LeetCode热题HOT100;

public class p36有效的数独 {
    public boolean isValidSudoku(char[][] board) {
        //将数组中的每个元素，根据题目要求，在三个维度中:所在行记录，所在列记录，所在小方块box记录
        //在三个维度中分别进行标记、检查
        //任何一个维度进行检查时，遇到已经标记过的元素则返回false
        int[][] rowRecord=new int[9][10];
        int[][] columnRecord=new int[9][10];
        int[][] box=new int[9][10];

        for (int i = 0; i <board.length ; i++) {
            for (int j = 0; j <board[i].length ; j++) {
                if (board[i][j]=='.') {
                    continue;
                }
                int curNum=board[i][j]-'0'; //字符数字 转为 数字
                int boxIJ=j/3+(i/3)*3;

                if (rowRecord[i][curNum]==1) {
                    return false;
                }else if (columnRecord[j][curNum]==1) {
                    return false;
                }else if (box[boxIJ][curNum]==1) {
                    return false;
                }

                //当前元素没有被标记，则三个维度中都没有出现
                rowRecord[i][curNum]=1;
                columnRecord[j][curNum]=1;
                box[boxIJ][curNum]=1;
            }

        }
        return true;

    }

    public static void main(String[] args) {
        char[] a={'a','b','9'};
        int num=a[2];
        int num2=a[2]-'0';
        System.out.println(a[2]);//9 字符
        System.out.println(num);//57
        System.out.println(num2);//9 数字
    }
}
